package com.gucheng.springframework.beans.factory.support;

import com.gucheng.springframework.beans.BeansException;
import com.gucheng.springframework.beans.factory.config.BeanDefinition;

import java.lang.reflect.Constructor;

public interface InstantiationStrategy {
    //实例化策略接口
    //1.BeanDefinition：这是一个bean的定义信息，包括bean的类名、属性值等
    //2.beanName：bean的名称
    //3.ctor：构造函数(java.lang.reflect 包下的 Constructor 类)
    //4.args：参数
    Object instantiate(BeanDefinition beanDefinition, String beanName, Constructor ctor, Object[] args) throws BeansException;

}

